
/*解题思路：
1.首先两种操作不可能混用，因为它们是抵消的效果，所以要么对这个数全使用1操作，要么2操作。
2.首先考虑1号操作，使用后可以让该数位变大，处于贪心考虑，想让它变成9，需要进行9-x次操作。
	操作次数t=min(n,9-x)
3.2号操作，唯一的机会就是让这个数减到0后再减变成9，需要次数x+1，如果操作次数不够，那宁愿不使用，因为这只会让这个数位变得更小

*/

#include <stdio.h>
#include <string.h>

char n[100];
int a, b, l;
long long ans = 0;//存储最终的结果，初始化为0

void dfs(int i, long long v) {//i是当前处理的数字字符串的位置，v当前计算的结果
    if (i == l) {//说明已经处理完所有数字
        ans = ans > v ? ans : v;//更新ans为当前结果v和ans中的最大值，然后返回
        return;
    }
    int x = n[i] - '0';//否则取出当前位置x
    int g = a < 9 - x ? a : 9 - x;//1号操作
    a -= g;//更新a为a-g
    dfs(i + 1, v * 10 + x + g);
    a += g;//恢复a的值，并检查是否可以将当前数字变为9
    if (b > x) {//如果满足2号操作，进行2号操作
        b -= x + 1;
        dfs(i + 1, v * 10 + 9);
        b += x + 1;
    }
}

int main() {
    scanf("%s %d %d", n, &a, &b);
    l = strlen(n);
    dfs(0, 0);
    printf("%lld\n", ans);
    return 0;
}